import { ethers, JsonRpcProvider } from 'ethers';

import {my_nft_address} from '@/config/contract'
import abi from "@/abis/nft.json"

/**
 * 在以太坊上铸造 NFT
 * @param {string} to 接收 NFT 的地址
 * @param {string} uri NFT 的元数据 URI
 */
export async function mint(to, uri) {
    // 创建一个以太坊 JSON-RPC 提供者
    // 本地hardhat节点
    const provider = new JsonRpcProvider('http://127.0.0.1:8545');

    // 获取第一个签名者
    const signer = await provider.getSigner(0);

    // 创建合约实例
    const contract = new ethers.Contract(my_nft_address, abi, signer);

    // 调用 safeMint 方法铸造 NFT
    const result = await contract.safeMint(to, uri);
    console.log("nft contract owner: "+await Promise.resolve(contract.owner()));
}
